package Array_List;

import java.util.ArrayList;

public class arratList的使用 {
	
	/*
	 * ArrayList< 泛型(引用数据类型) >   xxx = new ArrayList<>();
	 * <E>泛型： 指的是 存放的全部都是 统一的
	 * 
	 * 
	 * 1.导包
	 * import java.util.ArrayList
	 * 
	 * 2.创建
	 * 	构造方法创建：
	 * 	ArrayList<String> list1 = new ArrayList<>();
	 * 
	 * 3.使用
	 * 	1.添加：    xxx.add(E);传入一个和泛型数据类型相同的数据、
	 * 	2.获取：    xxx.get(角标); 获取这个角标上的值      从0开始
	 *  3.长度：    xxx.size();   获取集合的长度    返回一个数字int
	 *  
	 * 4. 基本数据类型  -->  引用数据类型      包装类
	 * * <E>泛型  必须包装类
		基本类型 ---	对应的包装类
	 *	byte	Byte
	 *	short	Short
	 *	int		Integer		【特殊】
	 *	long 	Long
	 *	float	Float
	 *	double 	Double
	 *	char 	Character	【特殊】
	 *	boolean Boolean
	 *
	 *	 * 从JDK 1.5开始，基本类型可以和对应的包装类进行自动装箱拆箱。
		装箱：基本类型  -->  包装类型
		拆箱：包装类型  -->  基本类型
	 *
	 * 5.自定义类型列表     ArrayList<Person> per = new ArrayList<>();
	 * 	直接打印自定义类型列表元素的的话，打印的是地址值
	 *
	 *

		
		
	 */
	public static void main(String[] args) {
		
		ArrayList<String> list1 = new ArrayList<>();
		list1.add("五一烦");
		list1.add("菜虚鲲");
		list1.add("乔碧萝");
		list1.add("奥利给");
		System.out.print("[ ");
		for (int i = 0; i < list1.size(); i++) {
			if ( i == list1.size()-1) {
				System.out.print(list1.get(i) + " ]");
			}else {
				System.out.print(list1.get(i) + "，");
			}
			
		}
		System.out.println("---------------------");
		
		ArrayList<Person> list2 = new ArrayList<>();
		Person per1 = new Person("胡歌",30);
		Person per2 = new Person("王凯",40);
		Person per3 = new Person("靳东",50);
		list2.add(per1);
		list2.add(per2);
		list2.add(per3);
		System.out.println(list2); // 自定义类型列表，直接打印，打印的是地址值
		
		// 遍历 自定义类型集合
		for (int i = 0; i < list2.size(); i++) {
			Person per = list2.get(i); // 先获取里面的元素    赋给per对象，通过
			System.out.println("姓名：" + per.getName() + "，年龄：" + per.getAge());
			System.out.println("姓名：" + list2.get(i).getName() + "，年龄：" + list2.get(i).getAge()); // 或者 直接调用
		}
	}

}
